#ifndef __INFORMACION_MATERIA_SEGUN_CARRERA_H__
#define __INFORMACION_MATERIA_SEGUN_CARRERA_H__

#include <string>
#include <list>

using namespace std;

namespace modelo {

	class InformacionMateriaSegunCarrera 
	{
	public:
		InformacionMateriaSegunCarrera(void);
		~InformacionMateriaSegunCarrera(void);

		/** Accesibilidad */
		string GetCodigo(){return codigo;}
		list<string> GetCodigoCorrelativas(){return codigoCorrelativas;}
		list<string> GetCodigoMateriasNecesarias(){return codigoMateriasNecesarias;}
		list<string> GetCodigoMateriasPosteriores(){return codigoMateriasPosteriores;}
		bool EsObligatoria(){return esObligatoria;}
		bool EsPrescindible(){return esPrescindible;}

		void SetCodigo(string otroCodigo){codigo = otroCodigo;}
		void SetCodigoCorrelativas(list<string> otrosCodigos){codigoCorrelativas = otrosCodigos;}
		void SetCodigoMateriasNecesarias(list<string> otrosCodigos){codigoMateriasNecesarias = otrosCodigos;}
		void SetCodigoMateriasPosteriores(list<string> otrosCodigos){codigoMateriasPosteriores = otrosCodigos;}
		void EsObligatoria(bool esObl){esObligatoria = esObl;}
		void EsPrescindible(bool esPresc){esPrescindible = esPresc;}

	private:
		string codigo;
		list<string> codigoCorrelativas;
		list<string> codigoMateriasNecesarias;
		list<string> codigoMateriasPosteriores;
		bool esObligatoria, esPrescindible;
	};
}
#endif